Устанавливает объект-ошибку для текущего потока управления.
HRESULT SetErrorInfo ( DWORD dwReserved, lErrorlnfo *perrinfo );
Параметры
dwReserved
Зарезервирован на будущее. Должен быть
равен 0.
perrinfo
Указатель на объект-ошибку.
Коды возврата
Из возвращенного HRESULT получают следующий код
возврата:
| Код возврата | Значение |
| S_OK | Успех. |
Комментарии
Функция освобождает текущий объект-ошибку, если таковой
имеется, и устанавливает указатель на объект-ошибку в perrinfo. Данную
функцию следует вызывать после создания объекта-ошибки, чтобы связать его с
текущим потоком управления.
Если свойство или метод, вызывающий
SetErrorlnfo, был вызван Displnvoke, то Displnvoke заполнит
параметр EXCEPINFO значениями, полученными из объекта-ошибки, после чего
возвратит DISP_E_EXCEPTION.
Контроллеры, выполняющие вызовы через
VTBL и не использующие IDispatch::Invoke, могут получить
объект-ошибку с помощью GetErrorlnfo. Таким образом, объект,
поддерживающий дуальный интерфейс, может использовать SetErrorlnfo,
независимо от того, использует ли клиент VTBL и IDispatch.
Пример
ICreateErrorlnfo *pcerrinfo;
lErrorlnfo *perrinfo;
HRESULT hr;
hr = CreateErrorInfo(&pcerrinfo);
hr = pcerrinfo->QueryInterface(IID_IErrorInfo, (LPVOID FAR*) &perrinfo);
if (SUCCEEDED(hr))
{
SetErrorInfo(0, perrinfo);
perrinfo->Release();
}
pcerrinfo->Release();